package com.ziyun.pop.common.utils;

import com.ziyun.pop.common.e.BaseEnum;

/**
 * 枚举类工具
 * @author zh
 * @date 2018/9/317:27
 */
public class EnumUtil {
    /**
     * 返回指定编码的'枚举'
     * @param codeInt
     * @return SharedObjTypeEnum
     * @throws
     */
    public static <T extends BaseEnum> T getEnumByCodeInt(Class<T> clazz, int codeInt) {
        for(T _enum : clazz.getEnumConstants())
            if(codeInt == _enum.toInt())
                return _enum;
        return null;
    }

    /**
     * 返回指定编码的'枚举'
     * @param code
     * @return SharedObjTypeEnum
     * @throws
     */
    public static <T extends BaseEnum> T getEnumByCode(Class<T> clazz, String code) {
        for(T _enum : clazz.getEnumConstants())
            if(_enum.toCode().equals(code))
                return _enum;
        return null;
    }

    /**
     * 返回指定描述的'枚举'
     * @param desc
     * @return SharedObjTypeEnum
     * @throws
     */
    public static <T extends BaseEnum> T getEnumByDesc(Class<T> clazz, String desc) {
        for(T _enum : clazz.getEnumConstants())
            if(_enum.toDescribe().equals(desc))
                return _enum;
        return null;
    }
}
